
#include "xapp_config.h"

#if XAPP_AUTO_K_ENABLE

#include "xapp_auto_k.h"
#include "xapp_system.h"

#include "em_autok.h"
#include "em_delay.h"
#include "em_rtc.h"

#include "xDLPS.h"

#if USER_CHECK_LOG_ENABLED( AUTO_K )
#include "log.h"
#define LOG     LOG_INFO 
#define LOG0    LOG_INFO0 
#define LOG1    LOG_INFO1
#define LOG2    LOG_INFO2
#define LOG3    LOG_INFO3
#else 
#define LOG(...) 
#define LOG0(...)
#define LOG1(...)
#define LOG2(...)
#define LOG3(...)
#endif 

bool xapp_auto_k_init(void)
{
    uint8_t count = 0;
    em_auto_k_init();

    for(int i = 0; i < AUTO_K_RETRY_TIMES; i ++)
    {
        if( em_auto_k_check_actived() )
        {
            count ++;
        }

        em_delay_ms( 10 );
    }

    if( count > AUTO_K_STABLE_TIMES )
    {
        xapp_system_set_mode( SYSTEM_MODE_AUTO_K );
        return true; 
    }

    return false; 
}

void xapp_auto_k_task_loop(void)
{
    if( em_rtc_get_second_ticks() > AUTO_K_RUN_TIME_SECONDS )
    {
        xapp_system_set_mode( SYSTEM_MODE_RESET );
    }
}

#endif // !XAPP_AUTO_K_ENABLE

